package com.photonpay.api.request;

import cn.hutool.http.Method;
import com.photonpay.api.response.UpdateCardResponse;
import lombok.Builder;
import lombok.Data;

import java.math.BigDecimal;

/**
 * 卡更新
 * @author ：lo-
 * @date ：Created in 2023/11/22 14:40
 */
@Data
@Builder
public class UpdateCardRequest extends BaseRequest<UpdateCardResponse> {

    /**
     * 卡ID
     */
    private String cardId;

    /**
     * 日交易限额。为空时不做限制，非空时大于1。默认最高限额为20000USD，如有需要请联系业务人员申请
     */
    private BigDecimal maxOnDaily;

    /**
     * 月交易限额。为空时不做限制，非空时大于1。默认最高限额为20000USD，如有需要请联系业务人员申请。
     */
    private BigDecimal maxOnMonthly;

    /**
     * 单笔交易最大金额。为空时不做限制，非空时大于1。默认最高限额为20000USD，如有需要请联系业务人员申请。
     */
    private BigDecimal maxOnPercent;

    /**
     * 昵称，为空时不更新
     */
    private String nickname;

    /**
     * 商户请求流水号，每笔交易的唯一请求号，不可重复。若因超时未收到响应结果，可用此ID查询设置结果。
     */
    private String requestId;

    /**
     * 可交易额度。transactionLimitType值为limited时，不能为空。
     */
    private BigDecimal transactionLimit;

    /**
     * "increase" "decrease"
     * 可交易额度变动类型
     */
    private String transactionLimitChangeType;

    /**
     * "limited" "unlimited"
     * 是否限制可交易额度，默认unlimited
     */
    private String transactionLimitType;

    @Override
    public Class<UpdateCardResponse> getResponseClass() {
        return UpdateCardResponse.class;
    }

    @Override
    public String getBasePath() {
        return "/vcc/open/v2/updateCard";
    }

    @Override
    public Method getMethod() {
        return Method.POST;
    }

    /**
     * 是否需要签名
     *
     * @return true = 需要
     */
    @Override
    public boolean isSign() {
        return true;
    }
}
